var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var passport=require('passport')

var usersRouter = require('./routes/users');
var menuRouter = require('./routes/menu');
var shareRouter = require('./routes/share');
var searchRouter = require('./routes/search');
var chatRouter = require('./routes/chat');
var shopRouter = require('./routes/shop');
var mypassort=require('./config/passport');

var app = express();

//设置跨域请求的允许操作
app.all('*', function (req, res, next) {
  // res.header('Access-Control-Allow-Origin', '*'); //针对所有请求用户都允许
  res.header('Access-Control-Allow-Origin', 'http://localhost:8080'); //针对指定的请求用户允许，其他用户禁止访问
  res.header('Access-Control-Allow-Headers', 'Content-Type,Authorization');
  res.header('Access-Control-Allow-Methods', '*');
  res.header('Access-Control-Allow-Credentials', 'true');
  next()
})

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//使用passport中间件，并初始化
app.use(passport.initialize())
mypassort(passport)

app.use('/users', usersRouter);
app.use('/menu', menuRouter);
app.use('/share', shareRouter);
app.use('/search', searchRouter);
app.use('/chat', chatRouter);
app.use('/shop', shopRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;
